"""
创建一个celery对象
1.任务
    ①任务的包名中的文件必须是tasks.py,因为我们的celery可以自动检测任务
      自动检测任务的时候,只检测tasks.py文件
    ②任务其实就是一个函数
    ③这个任务必须被Celery的实例对象的task装饰器装饰
2.broker

3.worker


"""

from celery import Celery

# import os
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mall.settings")


#进行Celery允许配置
# 为celery使用django配置文件进行设置
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mall.settings'

#以上设置 必须在celery对象创建前


#创建Celery对象
#celery的第一个参数:一般去设置celery的文件路径
#main的值,只要不重复就可以
app = Celery('celery_tasks')

#设置broker
#config_from_object 就是填写配置信息的路径
app.config_from_object('celery_tasks.config')

#让celery自动检测任务
#第一个参数是 任务列表[] 列表里的元素: 需要添加 任务包的路径

app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email','celery_tasks.html'])


#worker其实就是一条指令,这条指令需要在虚拟环境中执行
#celery -A celery实例对象的文件路径 -l info

#celery -A celery_tasks.main worker -l info